home *** CD-ROM | disk | FTP | other *** search
/ Shareware Games Galore! / Shareware Games Galore!.iso / arcade / gameser5 / blkfri3.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  8.0 KB  |  350 lines

  1. 10  CLS:KEY OFF
  2. 20  REM   AUTHOR: ROBERT W. BAKER
  3. 30  REM   MODIFIED FOR BASIC-E (BARF) BY R S MASON   9-25-77
  4. 40  REM   MODIFIED FOR MICROSOFT DISK BASIC BY ZOSO
  5. 50  REM   THIS PROGRAM REQUIRES CP/M WITH 26K OF FREE MEMORY (OVERHEAD)
  6. 60  REM
  7. 70  REM   THIS GAME IS WRITTEN TO PROVIDE A REALISTIC MODEL OF THE
  8. 80  REM   ACTUAL STOCK MARKET RATHER THAN A COMPLETELY RANDOMIZED
  9. 90  REM   HAPPENING OF EVENTS.
  10. 100  REM
  11. 110  REM
  12. 111  PRINT TAB(30)"BLACK FRIDAY #3"
  13. 120  PRINT CHR$(26) : WIDTH  80
  14. 130  PRINT "WHAT IS YOUR LUCKY NUMBER (1 TO 25000)"
  15. 140  INPUT A
  16. 150  IF A<1 OR A>25000 OR A<>INT(A) THEN PRINT "DO IT RIGHT !" : GOTO 130
  17. 160  PRINT CHR$(26)
  18. 170  PRINT "STAND BY FOR A FEW MOMENTS"
  19. 180  A=A MOD 97
  20. 190  FOR X=1 TO A : X1=RND(1) : X1=RND(X) : NEXT X
  21. 200  DIM A(36,12),U(11,9),E(11,9),K(10),T(10),F(9),M(4,12),X(4)
  22. 210  FOR I=1 TO 36: FOR J=1 TO 12: READ A(I,J): NEXT J: NEXT I
  23. 220  FOR I=1 TO 11: FOR J=1 TO 9: READ U(I,J): NEXT J: NEXT I
  24. 230  FOR I=1 TO 11: FOR J=1 TO 9: READ E(I,J): NEXT J: NEXT I
  25. 240  FOR N=1 TO 10
  26. 250  READ K(N)
  27. 260  NEXT N
  28. 270  V$="HIB XP SP ODMRD SO BT KA ZE BPL"
  29. 280  Y$="$5  $1  NONE$4  $7  NONENONE$2  $6  $3  "
  30. 290  REM
  31. 300  REM   DATA TO SIMULATE REAL LIFE STOCK MARKET
  32. 310  REM
  33. 320  DATA 1,0,0,0,0,0,0,0,0,5,0,0
  34. 330  DATA 0,0,0,0,0,0,-25,0,0,0,0,0
  35. 340  DATA 1,0,0,0,0,0,0,15,0,0,0,0
  36. 350  DATA 0,0,0,0,-5,0,0,0,0,0,0,0
  37. 360  DATA 1,0,0,0,0,0,0,0,0,5,0,0
  38. 370  DATA 0,0,0,0,0,0,5,0,0,0,0,0
  39. 380  DATA 1,0,0,0,0,0,10,0,0,0,0,0
  40. 390  DATA 0,0,10,0,0,0,0,0,0,0,0,0
  41. 400  DATA 1,0,0,0,0,0,15,0,0,0,0,0
  42. 410  DATA 0,0,-5,0,0,0,0,0,0,0,0,0
  43. 420  DATA 1,8,5,5,0,0,0,7,0,0,0,0
  44. 430  DATA 0,0,0,0,0,0,0,0,-25,0,0,0
  45. 440  DATA 1,0,0,0,0,0,0,0,10,0,0,0
  46. 450  DATA 0,0,-10,0,0,0,0,0,0,0,0,0
  47. 460  DATA 1,0,5,0,0,0,0,0,0,0,0,0
  48. 470  DATA 0,10,0,0,0,0,0,0,0,0,1,0
  49. 480  DATA 1,0,0,0,0,17,0,0,0,0,0,0
  50. 490  DATA 0,0,0,0,0,-15,0,0,0,0,0,0
  51. 500  DATA 1,0,0,0,0,0,0,0,10,0,0,0
  52. 510  DATA 0,0,0,0,0,0,0,-15,0,0,0,0
  53. 520  DATA 1,0,0,0,0,0,0,10,0,0,0,0
  54. 530  DATA 0,0,0,0,0,0,0,-15,0,0,0,0
  55. 540  DATA 1,0,0,-8,0,8,0,0,5,0,0,0
  56. 550  DATA 0,-10,0,0,0,0,0,0,0,0,0,0
  57. 560  DATA 1,8,0,0,0,0,0,0,0,0,0,0
  58. 570  DATA 0,0,0,0,0,0,0,-10,0,0,0,0
  59. 580  DATA 1,0,0,3,0,0,0,0,0,4,0,0
  60. 590  DATA 0,-8,0,0,0,0,0,0,0,0,0,0
  61. 600  DATA 1,0,0,0,5,0,0,0,0,0,0,0
  62. 610  DATA 0,0,0,0,0,-10,0,0,0,0,0,0
  63. 620  DATA 1,0,0,0,0,0,0,10,0,0,0,0
  64. 630  DATA 0,-8,-5,0,0,0,0,-7,0,0,0,0
  65. 640  DATA 1,10,0,0,0,0,0,0,0,0,0,0
  66. 650  DATA 0,0,0,0,0,0,0,0,0,-14,0,0
  67. 660  DATA 1,-10,0,0,0,0,0,0,0,0,0,0
  68. 670  DATA 0,0,0,0,0,0,-5,0,0,0,0,0
  69. 680  DATA -2,-10,7,-9,-2,-9,-7,-16,-4
  70. 690  DATA 26,16,25,8,-14,21,14,-4,17
  71. 700  DATA 18,23,11,12,46,18,-5,34,15
  72. 710  DATA 23,28,-2,11,56,19,30,29,14
  73. 720  DATA 20,15,15,7,-20,15,13,-10,12
  74. 730  DATA 17,21,13,-2,37,23,23,19,14
  75. 740  DATA 19,24,17,9,-5,26,13,-7,15
  76. 750  DATA 11,18,14,11,67,15,22,18,13
  77. 760  DATA 13,31,1,14,-11,18,18,-14,10
  78. 770  DATA 14,-8,19,1,-9,25,-10,13,19
  79. 780  DATA 24,24,23,20,51,27,38,33,18
  80. 790  DATA 12,14,13,10,10,20,21,25,8
  81. 800  DATA 7,-6,10,-10,30,6,-19,22,-2
  82. 810  DATA 9,10,7,-5,-20,12,21,18,7
  83. 820  DATA 7,8,5,-6,-40,3,16,-14,4
  84. 830  DATA 8,6,4,-4,40,8,4,-12,3
  85. 840  DATA 6,4,3,3,-15,5,8,-8,5
  86. 850  DATA 5,7,-1,-3,45,6,-10,10,4
  87. 860  DATA -2,6,-3,-8,-20,7,10,14,6
  88. 870  DATA 11,11,-5,-7,30,10,-11,-18,-4
  89. 880  DATA -5,13,-8,6,25,4,18,-22,-4
  90. 890  DATA -8,-10,-10,-15,-20,-20,-23,-25,-7
  91. 900  DATA 5,1,0,4,7,0,0,2,6,3
  92. 910  REM
  93. 920  REM   SECURITY NAMES
  94. 930  REM
  95. 940  A$="HIGHWAY IMPROVEMENT BONDS"
  96. 950  B$="X-PANDO CORPORATION"
  97. 960  C$="SEASIDE PROPERTIES INC."
  98. 970  D$="OLD DOG MUTUAL FUND"
  99. 980  E$="RUBBLE DEVELOPMENT"
  100. 990  F$="SLIPPERY OIL COMPANY"
  101. 1000  G$="BUMPY TRANSPORT CO."
  102. 1010  H$="KRASH AUTO COMPANY"
  103. 1020  I$="ZAP ELECTRONICS   "
  104. 1030  J$="BLINKEY POWER & LIGHT CO."
  105. 1040  REM
  106. 1050  REM
  107. 1060  PRINT "WANT INSTRUCTIONS";
  108. 1070  INPUT R$
  109. 1080  IF LEFT$(R$,1)="N" THEN 1320
  110. 1090  IF LEFT$(R$,1)<>"Y" THEN 1070
  111. 1100  PRINT CHR$(26)
  112. 1110  PRINT "THE MAIN OBJECT OF BLACK FRIDAY IS TO SHREWDLY INVEST $5000"
  113. 1120  PRINT"IN THE GAME'S 10 SECURITIES, BUYING AND SELLING EACH YEAR FOR"
  114. 1130  PRINT"A MAXIMUM OF 10 YEARS (ROUNDS) IN AN ATTEMPT TO BECOME"
  115. 1140  PRINT"THE WEALTHIEST PLAYER."
  116. 1150  PRINT
  117. 1160  PRINT"EACH YEAR ALL PLAYERS WILL RECEIVE DIVIDENDS ON EVERY PAYING"
  118. 1170  PRINT"STOCK WHICH IS WORTH $50 OR MORE."
  119. 1180  PRINT
  120. 1190  PRINT"IF THE VALUE OF ANY STOCK FALLS TO 0,THAT STOCK GOES BANKRUPT"
  121. 1200  PRINT"AND ALL SHARES ARE SURRENDERED.THE VALUE OF THE STOCK IS THEN"
  122. 1210  PRINT"ESTABLISHED AT $100. IF THE VALUE OF ANY STOCK REACHES $150,"
  123. 1220  PRINT"THERE WILL BE A STOCK SPLIT."
  124. 1230  PRINT
  125. 1240  PRINT"A TABLE WILL BE PRINTED EACH YEAR GIVING THE CHANGE IN VALUE"
  126. 1250  PRINT"OF EACH STOCK, THE PRESENT PRICE, AND THE NUMBER OF SHARES"
  127. 1260  PRINT"EACH PLAYER OWNS OF EVERY STOCK. ALSO, ANY DIVIDENDS RECEIVED"
  128. 1270  PRINT"FOR THE YEAR WILL BE SHOWN ALONG WITH EACH PLAYERS TOTAL CASH"
  129. 1280  PRINT
  130. 1290  PRINT "PRESS SPACE BAR TO PLAY"
  131. 1300  WAIT 0,1,1
  132. 1310  PRINT CHR$(26)
  133. 1320  PRINT CHR$(26)
  134. 1330  PRINT"AVAILABLE SECURITIES, ABBREVIATION, DIVIDENDS PER SHARE"
  135. 1340  PRINT
  136. 1350  FOR N=1 TO 10
  137. 1360  GOSUB 3190
  138. 1370  PRINT S$,MID$(V$,3*N-2,3),MID$(Y$,4*N-3,4)
  139. 1380  NEXT N
  140. 1390  PRINT
  141. 1400  INPUT "NUMBER OF PLAYERS (1 TO 4)="; P
  142. 1410  IF P>4 THEN 1450
  143. 1420  IF P<=0 THEN 1450
  144. 1430  FOR I=1 TO 4: FOR J=1 TO 12: M(I,J)=0: NEXT J: NEXT I
  145. 1440  INPUT "NUMBER OF YEARS (3 TO 10)="; S
  146. 1450  IF S<3 THEN 1510
  147. 1460  IF S>10 THEN 1510
  148. 1470  PRINT CHR$(26)
  149. 1480  FOR I=1 TO 9: F(I)=0: NEXT I
  150. 1490  FOR N=1 TO P
  151. 1500  M(N,1)=5000
  152. 1510  NEXT N
  153. 1520  FOR I=1 TO 10: T(I)=100: NEXT I
  154. 1530  Y=0
  155. 1540  REM
  156. 1550  REM
  157. 1560  REM   FIND MARKET CHANGES FOR NEXT ROUND,SEE IF BULL OR BEAR MARKET
  158. 1570  REM
  159. 1580  D=INT(RND(1)*11+1)
  160. 1590  C=INT(RND(1)*36+1)
  161. 1600  IF A(C,12)=1 THEN 1590
  162. 1610  A(C,12)=1
  163. 1620  FOR N=2 TO 10
  164. 1630  GOSUB 3190
  165. 1640  IF A(C,1)=1 THEN 1690
  166. 1650  W$="BEAR"
  167. 1660  F(N-1)=A(C,N)+E(D,N-1)
  168. 1670  T(N)=T(N)+F(N-1)
  169. 1680  GOTO 1750
  170. 1690  F(N-1)=A(C,N)+U(D,N-1)
  171. 1700  W$="BULL"
  172. 1710  T(N)=T(N)+F(N-1)
  173. 1720  REM
  174. 1730  REM   CHECK FOR STOCK SPLITS
  175. 1740  REM
  176. 1750  IF T(N)<150 THEN 1870
  177. 1760  PRINT "*** "+S$+" STOCKS SPLIT ***"
  178. 1770  IF T(N)/2=INT(T(N)/2) THEN 1800
  179. 1780  T(N)=INT(T(N)/2)+1
  180. 1790  GOTO 1810
  181. 1800  T(N)=T(N)/2
  182. 1810  FOR J=1 TO P
  183. 1820  M(J,N+1)=M(J,N+1)*2
  184. 1830  NEXT J
  185. 1840  REM
  186. 1850  REM   CHECK FOR BANKRUPT STOCKS
  187. 1860  REM
  188. 1870  IF T(N)>0 THEN 1940
  189. 1880  T(N)=100
  190. 1890  FOR J=1 TO P
  191. 1900  M(J,N+1)=0
  192. 1910  NEXT J
  193. 1920  PRINT "*** "+S$+" WENT BANKRUPT ***"
  194. 1930  PRINT "THESE STOCKS MUST BE SURRENDERED"
  195. 1940  NEXT N
  196. 1950  Y=Y+1
  197. 1960  REM
  198. 1970  REM   ADD EACH PLAYERS DIVIDENDS TO TOTAL CASH
  199. 1980  REM
  200. 1990  FOR N=1 TO P
  201. 2000  M(N,12)=0
  202. 2010  FOR J=1 TO 10
  203. 2020  IF T(J)<50 THEN 2040
  204. 2030  M(N,12)=M(N,12)+K(J)*M(N,J+1)
  205. 2040  NEXT J
  206. 2050  IF A(C,11)=0 THEN 2080
  207. 2060  M(N,12)=M(N,12)+M(N,3)*2
  208. 2070  PRINT "*** X-PANDO CORP. PAYS $2 DIVIDENDS PER SHARE ***"
  209. 2080  M(N,1)=M(N,1)+M(N,12)
  210. 2090  NEXT N
  211. 2100  REM
  212. 2110  REM
  213. 2120  REM   PRINT WHAT HAPPENED & CURRENT VALUES
  214. 2130  REM
  215. 2140  PRINT CHR$(26) : PRINT "*** YEAR ";Y;"*** "+W$+" MARKET ***"
  216. 2150  PRINT TAB(23);"PLAYER HOLDINGS    YEAR ";Y
  217. 2160  PRINT TAB(6);" +/-$    PRICE";
  218. 2170  FOR N=1 TO P
  219. 2180  PRINT TAB(18+8*N);N;
  220. 2190  NEXT N
  221. 2200  PRINT
  222. 2210  PRINT LEFT$(V$,3);TAB(8);"0";TAB(16);"100";
  223. 2220  FOR N=1 TO P
  224. 2230  PRINT TAB(18+8*N);M(N,2);
  225. 2240  NEXT N
  226. 2250  PRINT
  227. 2260  FOR N=1 TO 9
  228. 2270  PRINT MID$(V$,3*N+1,3);TAB(7);F(N);TAB(15);T(N+1);
  229. 2280  FOR J=1 TO P
  230. 2290  PRINT TAB(18+8*J);M(J,N+2);
  231. 2300  NEXT J
  232. 2310  PRINT
  233. 2320  NEXT N
  234. 2330  PRINT
  235. 2340  PRINT "DIVIDENDS FOR YEAR";
  236. 2350  FOR N=1 TO P
  237. 2360  PRINT TAB(18+8*N);M(N,12);
  238. 2370  NEXT N
  239. 2380  PRINT
  240. 2390  PRINT "NEW CASH TOTAL";
  241. 2400  FOR N=1 TO P
  242. 2410  PRINT TAB(18+8*N);M(N,1);
  243. 2420  NEXT N
  244. 2430  PRINT
  245. 2440  PRINT "NEW NET WORTH ";
  246. 2450  GOSUB 3400
  247. 2460  FOR N=1 TO P
  248. 2470  PRINT TAB(18+8*N);X(N);
  249. 2480  NEXT N
  250. 2490  IF Y=S THEN 2930
  251. 2500  REM
  252. 2510  REM
  253. 2520  REM   CHECK IF ANYONE WANTS TO SELL OR BUY ANYTHING
  254. 2530  REM
  255. 2540  FOR N=1 TO P
  256. 2550  PRINT
  257. 2560  PRINT "***  PLAYER ";N;" ***"
  258. 2570  PRINT "YOU NOW HAVE $";M(N,1)
  259. 2580  FOR J=1 TO 10
  260. 2590  IF M(N,J+1)<>0 THEN 2620
  261. 2600  NEXT J
  262. 2610  GOTO 2730
  263. 2620  INPUT "WANT TO SELL"; R$
  264. 2630  IF R$="N" THEN 2730
  265. 2640  IF R$<>"Y" THEN 2760
  266. 2650  GOSUB 3080
  267. 2660  INPUT "NUMBER OF SHARES"; R
  268. 2670  IF R<=M(N,J+1) THEN 2700
  269. 2680  PRINT "*** YOU ONLY HAVE ";M(N,J+1);" SHARES ***"
  270. 2690  GOTO 2660
  271. 2700  M(N,J+1)=M(N,J+1)-R
  272. 2710  M(N,1)=M(N,1)+R*T(J)
  273. 2720  GOTO 2570
  274. 2730  FOR J=1 TO 10
  275. 2740  IF M(N,1)>T(J) THEN 2770
  276. 2750  NEXT J
  277. 2760  GOTO 2890
  278. 2770  INPUT "WANT TO BUY"; R$
  279. 2780  IF R$="N" THEN 2890
  280. 2790  IF R$<>"Y" THEN 2950
  281. 2800  GOSUB 3080
  282. 2810  INPUT "NUMBER OF SHARES"; R
  283. 2820  IF R*T(J)<=M(N,1) THEN 2850
  284. 2830  PRINT "ONLY MONEY ENOUGH FOR ";INT(M(N,1)/T(J));"SHARES"
  285. 2840  GOTO 2810
  286. 2850  M(N,J+1)=M(N,J+1)+R
  287. 2860  M(N,1)=M(N,1)-R*T(J)
  288. 2870  PRINT "YOU NOW HAVE $";M(N,1)
  289. 2880  GOTO 2730
  290. 2890  NEXT N
  291. 2900  GOTO 1580
  292. 2910  REM
  293. 2920  REM
  294. 2930  REM   CLOSING OUT AT END OF GAME - PRINT FINAL TOTALS
  295. 2940  REM
  296. 2950  PRINT
  297. 2960  PRINT "*** FINAL TOTALS ARE:"
  298. 2970  PRINT "PLAYER          TOTAL"
  299. 2980  FOR N=1 TO P
  300. 2990  FOR J=1 TO 10
  301. 3000  M(N,1)=M(N,1)+T(J)*M(N,J+1)
  302. 3010  NEXT J
  303. 3020  PRINT
  304. 3030  PRINT N,M(N,1)
  305. 3040  NEXT N
  306. 3050  GOTO 3480
  307. 3060  REM
  308. 3070  REM
  309. 3080  REM   SUBROUTINE TO LOOK UP STOCK NAMES FOR BUY & SELL
  310. 3090  REM
  311. 3100  PRINT "NAME OF STOCK";
  312. 3110  INPUT R$
  313. 3120  FOR J=1 TO 10
  314. 3130  IF LEFT$(R$,2)=MID$(V$,3*J-2,2) THEN 3170
  315. 3140  IF LEFT$(R$,2)=MID$(V$,3*J-1,2) THEN 3170
  316. 3150  NEXT J
  317. 3160  GOTO 3100
  318. 3170  RETURN
  319. 3180  REM
  320. 3190  ON N GOTO 3200,3220,3240,3260,3280,3300,3320,3340,3360,3380
  321. 3200  S$=A$
  322. 3210  RETURN
  323. 3220  S$=B$
  324. 3230  RETURN
  325. 3240  S$=C$
  326. 3250  RETURN
  327. 3260  S$=D$
  328. 3270  RETURN
  329. 3280  S$=E$
  330. 3290  RETURN
  331. 3300  S$=F$
  332. 3310  RETURN
  333. 3320  S$=G$
  334. 3330  RETURN
  335. 3340  S$=H$
  336. 3350  RETURN
  337. 3360  S$=I$
  338. 3370  RETURN
  339. 3380  S$=J$
  340. 3390  RETURN
  341. 3400  FOR N=1 TO P
  342. 3410  W=0
  343. 3420  FOR J=1 TO 10
  344. 3430  W=W+T(J)*M(N,J+1)
  345. 3440  NEXT J
  346. 3450  X(N)=W+M(N,1)
  347. 3460  NEXT N
  348. 3470  RETURN
  349. 3480  RESET
  350.